import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class VisitStats {
    private ArrayList<Page> pages;  // 存储页面列表

    public VisitStats() {
        pages = new ArrayList<>();
    }

    // 记录页面访问
    public void recordPageVisit(String url) {
        Page page = findPage(url);
        if (page == null) {
            page = new Page(url);
            pages.add(page);
        }
        page.incrementViewCount();
    }

    // 查找页面
    private Page findPage(String url) {
        for (Page page : pages) {
            if (page.getUrl().equals(url)) {
                return page;
            }
        }
        return null;
    }

    // 显示访问量排行榜
    public void showVisitRanking() {
        if (pages.isEmpty()) {
            System.out.println("没有访问数据！");
            return;
        }

        pages.sort(Comparator.comparingInt(Page::getViewCount).reversed());
        System.out.println("访问量排行榜：");
        for (Page page : pages) {
            System.out.println(page);
        }
    }

    // 统计总访问量
    public int getTotalVisitCount() {
        int total = 0;
        for (Page page : pages) {
            total += page.getViewCount();
        }
        return total;
    }

    // 计算平均访问量
    public double getAverageVisitCount() {
        if (pages.isEmpty()) {
            return 0;
        }
        return getTotalVisitCount() / (double) pages.size();
    }

    // 显示页面最后访问时间
    public void showLastAccessTime(String url) {
        Page page = findPage(url);
        if (page != null) {
            System.out.println("页面 " + url + " 的最后访问时间：" + page.getLastAccessTime());
        } else {
            System.out.println("未访问过此页面");
        }
    }

    // 清空访问统计
    public void clearStats() {
        pages.clear();
        System.out.println("访问统计已清空！");
    }
}